Typically, graded assignments or projects allow for evaluating students' performance, providing in-job training, reinforcing learning, and providing feedback to students based on their work. However, creating, administering, and grading effective assignments are very time-consuming tasks for teachers.
In a typical classroom, grading is usually performed without any computing means, which is inaccurate and slow. Certain solutions discussed in the related art suggest automating the process of creating and grading classroom assignments. Such solutions are typically web-based, allowing teachers to reuse information from one assignment to create a new one. The grading is performed based only on definitively correct answers. For example, a multiple choice question or a math question can be evaluated using such solutions because such a question has a single (or more than one) predetermined answer that is right, and/or one or more answers that are predetermined to be wrong. However, such existing web-based solutions cannot evaluate and grade assignments where some or all of the correct answers may not be predetermined. In particular, such solutions cannot properly grade assignments that require programming of software code.
One of the challenges in evaluating such programming assignments is that the answer of an assignment may be correct, but nevertheless may fail to match a predefined answer provided, e.g., by the teacher. That is, a mere comparison of the results would not correctly grade the assignment. For some such assignments, a potentially infinite number of logically equivalent correct answers may be possible.
Moreover, the “answer” for an assignment may be in a form of programming a process or an algorithm that computes a certain task. This would be predominantly the case when training data engineers or scientists. Big data is an interdisciplinary field related to processes for extracting knowledge or insights from structured or unstructured data. Data engineers/scientists use methods from statistics, data mining, predictive analytics, and machine learning to extract knowledge and/or insights from data.
The challenges facing grading of assignments in the field of big data are much more complicated than those for assignments created for a typical classroom. First, there is a broad range of skills to be trained and evaluated. Further, the assignments mainly require algorithms, processes, and programs, such as executable code. The algorithms should be designed to perform specific modeling and analyzing functions for large data sets. As noted above, there could be an infinite number of possible logical ways to design algorithms and, thus, grading can be merely based on the results produced by such algorithms.
Furthermore, algorithms in the field of bid data often provide insights on a specific problem. Insights by their nature are not definitive results. Therefore, the evaluation and grading of assignments relating to the developing and/or programming of such algorithms may be based not only on the correctness of the results, but also on their completeness.
In addition, grading big data algorithms may require execution of their respective codes in a computing environment. Code submitted for grading may be malicious, thereby tampering with the grading program to provide inaccurate grades and/or to harm the execution environment.
Currently, none of the existing solutions, and particularly solutions for grading computer science assignments, are designed to meet all of the above noted challenges. Specifically, the existing solutions for grading computer science assignments cannot efficiently evaluate and grade bid data algorithms in a secured manner.
It would therefore be advantageous to provide a grading solution that would overcome the deficiencies of the prior art.